Сергей Добычин — constexpr-аллокатор для контейнеров стандартной библиотеки
Одна из главных фич, которая выделяет С++ среди других языков — константные вычисления. С каждым новым стандартом языка поддержка константных вычислений становится все более продвинутой.
В С++ 20 появились аллокации памяти в constexpr-выражениях, и стало возможным использовать std::vector и std::string в константных выражениях.
Но есть одно но: использовать их можно только внутри constexpr, из constexpr-функции нельзя вернуть std::string или std::vector.
В докладе рассмотрели, как, используя только лишь возможности С++23, написать аллокатор, с помощью которого можно реализовать top-level constexpr std::string, std::vector и остальные контейнеры стандартной библиотеки.
2:55 Начало. Transient выделения памяти при компиляции. Невозможность non-transient в C++ 8:45 Подробный разбор предложения P0639 по CE аллокатору 11:30 Проблемы с размером буфера 18:16 Двухэтапное определения размера буфера во время компиляции 20:40 Постановка задачи: как сделать чтобы CE аллокатор сам определял размер буфера? Общий вид решения. 23:13 Интересные детали реализации 27:45 Передача инициализирующего значения через типы (разбор P2781) 31:20 Завершение: QR код на полное решение в C++20 и примеры 34:08 Вопросы
Сергей Добычин — constexpr-аллокатор для контейнеров стандартной библиотеки
Одна из главных фич, которая выделяет С++ среди других языков — константные вычисления. С каждым новым стандартом языка поддержка константных вычислений становится все более продвинутой.
В С++ 20 появились аллокации памяти в constexpr-выражениях, и стало возможным использовать std::vector и std::string в константных выражениях.
Но есть одно но: использовать их можно только внутри constexpr, из constexpr-функции нельзя вернуть std::string или std::vector.
В докладе рассмотрели, как, используя только лишь возможности С++23, написать аллокатор, с помощью которого можно реализовать top-level constexpr std::string, std::vector и остальные контейнеры стандартной библиотеки.
2:55 Начало. Transient выделения памяти при компиляции. Невозможность non-transient в C++ 8:45 Подробный разбор предложения P0639 по CE аллокатору 11:30 Проблемы с размером буфера 18:16 Двухэтапное определения размера буфера во время компиляции 20:40 Постановка задачи: как сделать чтобы CE аллокатор сам определял размер буфера? Общий вид решения. 23:13 Интересные детали реализации 27:45 Передача инициализирующего значения через типы (разбор P2781) 31:20 Завершение: QR код на полное решение в C++20 и примеры 34:08 Вопросы
Pinterest (PINS) closed at $71.75 in the latest trading session, marking a -0.18% move from the prior day. This change lagged the S&P 500's daily gain of 0.1%. Meanwhile, the Dow gained 0.9%, and the Nasdaq, a tech-heavy index, lost 0.59%.
Heading into today, shares of the digital pinboard and shopping tool company had lost 17.41% over the past month, lagging the Computer and Technology sector's loss of 5.38% and the S&P 500's gain of 0.71% in that time.
Investors will be hoping for strength from PINS as it approaches its next earnings release. The company is expected to report EPS of $0.07, up 170% from the prior-year quarter. Our most recent consensus estimate is calling for quarterly revenue of $467.87 million, up 72.05% from the year-ago period.
How Does Bitcoin Work?
Bitcoin is built on a distributed digital record called a blockchain. As the name implies, blockchain is a linked body of data, made up of units called blocks that contain information about each and every transaction, including date and time, total value, buyer and seller, and a unique identifying code for each exchange. Entries are strung together in chronological order, creating a digital chain of blocks. “Once a block is added to the blockchain, it becomes accessible to anyone who wishes to view it, acting as a public ledger of cryptocurrency transactions,” says Stacey Harris, consultant for Pelicoin, a network of cryptocurrency ATMs. Blockchain is decentralized, which means it’s not controlled by any one organization. “It’s like a Google Doc that anyone can work on,” says Buchi Okoro, CEO and co-founder of African cryptocurrency exchange Quidax. “Nobody owns it, but anyone who has a link can contribute to it. And as different people update it, your copy also gets updated.”